<html lang ="en">
	<head> <title>CSE 471 Audio Synthesizer</title> </head>
	<body>
		<h1> Drum Synthesizer By: Max Ellison </h1>
		<ul> 
			<li>The <a href="Drum_Score_File.score">score file</a> to demonstrate the functionality of the Drum Synthesizer</li>
			<li>The <a href="Drum_Wave_File.wav">wave file</a> that is generated from the score file.</li>
		</ul>
		
		<h2> Grading Criteria </h2>
		<ul>
			<li><div><u>Waveform Playback from Tables</u></div></li>
				<ul><li><div>The waveform playback was done using the tutorial part 2 with regards to playing a wavetable.
							The wave's are stored in a map, using the name of the file as a key. The files are then loaded into
							the DrumFactory if there is no entry for that filename already.
				</div></li></ul>
			<li><div><u>Envelope Generation</u></div></li>
				<ul><li><div>
					I generated both a amplitude ADSR envelope to control the "Pop" that you often hear when generating audio like this.
				</div></li></ul>
			<li><div><u>Polyphony</u></div></li>
				<ul><li><div>
					You can create any number of drum notes to be played on the same point in time with the Drum Synthesizer. Each note that is read is either a WaveInstrument, if the 
					source is from a file, or a DrumInstrument, if it is synthesized. Each note that is currently being played, contributes to the final sound for that time interval.
				</div></li></ul>
			<li><div><u>Varying Pitch Playback</u></div></li>
				<ul><li><div>
					The varying of pitch is done using the augment tag, and will only work if the note you are playing comes from a file. The pitch
					is varied by raising or lowering the pitch in number of half steps. Ergo if you raise the pitch 3 half-steps you are playing the
					wave table 1.05946309^3 = 1.1892071 times as fast.
				</div></li></ul>
			<li><div><u>At least 20 distinct drum sounds</u></div></li>
				<ul><li><div>
					The 
				</div></li></ul>
			<li><div><u>Synthesized Drum</u></div></li>
				<ul><li><div>
					The synthesized drum that I created starts from a CSineWave with a given pitch. Some white noise is added to the sinusodial wave and then passed through
					a reson filter. Then the wave is passed through an ADSR envelope which handles the amplitude of the note.
				</div></li></ul>
		</ul>
	</body>
</html>